swedish', name: 'Svenska' }, { id: 'mg', herfname: 'malagasy', name: 'Malagasy' }, { id: 'my', herfname: 'burmese', name: 'ဗမာ' }, { id: 'ps', herfname: 'pashto', name: 'پښتو' }, { id: 'hy', herfname: 'armenian', name: 'Հայերեն' }, { id: 'fa', herfname: 'persian', name: 'فارسی' }, { id: 'ku', herfname: 'kurdish', name: 'کوردی' }, { id: 'bg', herfname: 'bulgarian', name: 'български' }, { id: 'ms', herfname: 'malay', name: 'Bahasa Melayu' }, { id: 'sw', herfname: 'swahili', name: 'KiSwahili' }, { id: 'is', herfname: 'icelandic', name: 'Íslenska' }, { id: 'ga', herfname: 'irish', name: 'Gaeilgenah' }, { id: 'gu', herfname: 'gujarati', name: 'ગુજરાતી' }, { id: 'sk', herfname: 'slovak', name: 'Slovenčina' }, { id: 'kn', herfname: 'kannada', name: 'ಕನ್ನಡ' }, { id: 'hu', herfname: 'hungarian', name: 'Magyar' }, { id: 'mr', herfname: 'marathi', name: 'मराठी' }, { id: 'ta', herfname: 'tamil', name: 'தமிழ்' }, { id: 'et', herfname: 'estonian', name: 'Eesti' }, { id: 'ml', herfname: 'malayalam', name: 'മലയാളം' }, { id: 'am', herfname: 'amharic', name: 'አማርኛ' }, { id: 'pa', herfname: 'punjabi', name: 'ਪੰਜਾਬੀ' }, { id: 'sq', herfname: 'albanian', name: 'Shqip' }, { id: 'lt', herfname: 'lithuanian', name: 'Lietuvių' }, { id: 'sl', herfname: 'slovene', name: 'Slovenščina' }, { id: 'bn', herfname: 'bengali', name: 'বাংলা' }, { id: 'ur', herfname: 'urdu', name: 'اردو' }, { id: 'az', herfname: 'azerbaijani', name: 'Azərbaycan' }, { id: 'sm', herfname: 'samoan', name: 'Faasamoa' }, { id: 'af', herfname: 'afrikaans', name: 'Afrikaans' }, { id: 'el', herfname: 'greek', name: 'Ελληνικά' }, { id: 'da', herfname: 'danish', name: 'Dansk' }, { id: 'mi', herfname: 'maori', name: 'Māori' }, { id: 'fi', herfname: 'finnish', name: 'Suomi' }, { id: 'ca', herfname: 'catalan', name: 'Català' }, { id: 'hr', herfname: 'croatian', name: 'Hrvatski' }, { id: 'bs', herfname: 'bosnian', name: 'Bosanski' }, { id: 'pl', herfname: 'polish', name: 'Polski' }, { id: 'lv', herfname: 'latvian', name: 'latviešu valoda' }, { id: 'mt', herfname: 'maltese', name: 'Maltese' }, // {id: 'ka', herfname: 'georgian', name: 'ქართველი'},没有用 // {id: 'in', herfname: 'inuktitut', name: 'ᐃᓄᒃᑎᑐᑦ'}, // {id: 'or', herfname: 'oriya', name: 'ଓଡିଆ'}, // {id: 'kh', herfname: 'khmer', name: 'ភាសាខ្មែរ'}, // {id: 'to', herfname: 'tongan', name: 'Tonga'}, ]; // 模态框控制对象 const languageModal = { init: function (list) { this.cacheElements(); this.bindEvents(); this.generateLinks(list); }, cacheElements: function () { this.$mask = $('.language_modal_mask'); this.$blade = $('.language_modal_blade'); this.$container = $('#languageCon'); this.$body = $('body'); }, bindEvents: function () { // 关闭模态框事件 this.$mask.on('click', this.close.bind(this)); $(document).on('keyup', this.handleKeyup.bind(this)); // 语言链接点击事件(使用事件委托) this.$container.on('click', '.language_modal_a', function (e) { e.preventDefault(); const lang = $(this).data('lang'); translate.changeLanguage(lang); languageModal.close(); }); }, generateLinks: function (list) { // 创建文档片段 // DocumentFragment 是一个轻量级的 DOM 节点容器,它具有以下特点: // 虚拟容器:它不是真正的 DOM 节点,不会被添加到文档树中 // 性能优化:可以在内存中构建 DOM 结构,然后一次性插入到文档中 // 批量操作:避免多次 DOM 操作引起的页面重排和重绘 const fragment = document.createDocumentFragment(); $.each(list, (index, lang) => { const $link = $('', { href: `javascript:translate.changeLanguage('${lang.herfname}');`, class: 'language_modal_a', title: lang.name, 'data-lang': lang.herfname }).css({ display: 'flex', flexDirection: 'column', alignItems: 'center' }); $link.append( $('
', { class: `icon-language icon-${lang.id}` }), $('').text(lang.name) ); fragment.appendChild($link[0]); }); this.$container.empty().append(fragment); }, show: function () { this.$mask.add(this.$blade).fadeIn(200); this.$body.css('overflow', 'hidden'); }, close: function () { this.$mask.add(this.$blade).fadeOut(200); this.$body.css('overflow', 'auto'); }, handleKeyup: function (e) { if (e.keyCode === 27 && this.$mask.is(':visible')) { this.close(); } } }; // 初始化 $(function () { languageModal.init(languageList); }); translate.language.setDefaultTo('english'); //设置默认语言 translate.nomenclature.append('english', 'chinese_simplified', ` Likexing = 励可行 `); translate.nomenclature.append('english', 'chinese_traditional', ` Likexing = 勵可行 `); translate.ignore.text.push('m²'); //翻译时追加上自己想忽略不进行翻译的文本,凡是在这里面的,都不进行翻译。 /* * 是否显示 select选择语言的选择框,true显示; false不显示。默认为true * 注意,这行要放到 translate.execute(); 上面 */ translate.selectLanguageTag.show = false; translate.service.use('client.edge'); //设置机器翻译服务通道 translate.execute(); //进行翻译